package com.cn.web.user.service;

import com.cn.auth.AuthVo;
import com.cn.user.UserDO;
import com.cn.web.user.vo.*;

/**
 * description: LoginService <br>
 * date: 23.5.25 16:40 <br>
 * author: cn_yaojin <br>
 * version: 1.0 <br>
 */
public interface LoginService {

    /**
     * 会员注册
     *
     * @param info
     * @return
     */
    Object register(UserRegisterPcDTO info) throws InterruptedException;

    /**
     * pc端账号密码登录
     *
     * @param userLogin
     * @param loginDeviceTypeEnum
     * @return
     */
    AuthVo<UserDO> login(UserLoginDTO userLogin, String loginDeviceTypeEnum);

    AuthVo<UserDO> loginCode(String userId, String loginDeviceTypeEnum);

    /**
     * pc端手机验证码登录
     *
     * @param info
     * @return
     */
    AuthVo<UserDO> loginByPcCode(UserLoginByPcCodeDTO info);


    /**
     * 子账号登录
     *
     * @param info
     * @return
     */
    AuthVo<UserDO> loginRamCode(UserLoginByRAMDTO info);

    /**
     * 忘记密码
     *
     * @param info
     */
    void forgetPass(UserForgetPassDTO info);

    /**
     * 移动端-账号密码登录
     *
     * @return
     */
    AuthVo<UserDO> loginByPhone(UserLoginByPhoneDTO info);

    /**
     * 移动端-验证码登录
     *
     * @return
     */
    AuthVo<UserDO> loginByPhoneCode(UserLoginByPhoneCodeDTO info);

    /**
     * @return
     */
    AuthVo<UserDO> loginByPhoneDeviceIdTokenId(UserLoginByPhoneTokenDTO info);
}
